Topology information for networks

ABSTRACT

A device may receive a first network topology message from a network device. The first network topology message may include first network topology information associated with the network device in a first set of fields of the first network topology message. The device may generate a second network topology message. The second network topology message may include second network topology information associated with the device in a first set of fields of the second network topology message. The first set of fields of the second network topology message may correspond to the first set of fields of the first network topology message. The second network topology message may include the first network topology information associated with the network device in a second set of fields of the second network topology message. The device may provide the second network topology message.

BACKGROUND

A communications protocol, such as a link layer discovery protocol(LLDP) may be utilized by a network device to provide informationregarding an identity of the network device, a capability of the networkdevice, or the like. For example, a first network device may transmit anLLDP message to a second network device identifying a chassis identifierassociated with the first network device, one or more port identifiersassociated with network ports of the first network device, or the like.

SUMMARY

According to some possible implementations, a device may include one ormore processors. The one or more processors may receive a first networktopology message from a network device. The first network topologymessage may include first network topology information associated withthe network device in a first set of fields of the first networktopology message. The one or more processors may generate a secondnetwork topology message including second network topology informationassociated with the device in a first set of fields of the secondnetwork topology message. The first set of fields of the second networktopology message may correspond to the first set of fields of the firstnetwork topology message. The second network topology message mayinclude the first network topology information associated with thenetwork device in a second set of fields of the second network topologymessage. The one or more processors may provide the second networktopology message.

According to some possible implementations, the non-transitorycomputer-readable medium may store one or more instructions that, whenexecuted by one or more processors of a device, may cause the one ormore processors to receive a first link layer discovery protocol (LLDP)message. The first LLDP message may include network topology informationrelating to one or more network devices. The network topologyinformation relating to the one or more network devices may be includedin an organizationally specific type-length value (TLV) field of thefirst LLDP message. A network device, of the one or more networkdevices, may lack a connection to a network management device to providenetwork topology information relating to the network device. The one ormore instructions, when executed by one or more processors of a device,may cause the one or more processors to store the network topologyinformation relating to the one or more network devices as storednetwork topology information. The one or more instructions, whenexecuted by one or more processors of a device, may cause the one ormore processors to transmit a second LLDP message. The second LLDPmessage may include the stored network topology information included inan organizationally specific TLV field of the second LLDP message.

According to some possible implementations, a method may includereceiving, by a device, a message including network topology informationassociated with a set of network devices. The message may include amandatory field. The mandatory field may include a portion of thenetwork topology information associated with a particular networkdevice, of the set of network devices, that generated the message. Theoptional field may include a portion of the network topology informationassociated with one or more network devices, of the set of networkdevices, to which the device is not connected. The method may includeprocessing, by the device, the message to obtain the network topologyinformation. The method may include providing, by the device, thenetwork topology information for display based on processing the messageto obtain the network topology information.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of an overview of an example implementationdescribed herein;

FIG. 2 is a diagram of an example environment in which systems and/ormethods, described herein, may be implemented;

FIG. 3 is a diagram of example components of one or more devices of FIG.2;

FIG. 4 is a flow chart of an example process for determining a networktopology associated with a set of network devices; and

FIGS. 5A-5D are diagrams of an example implementation relating to theexample process shown in FIG. 4.

DETAILED DESCRIPTION

The following detailed description of example implementations refers tothe accompanying drawings. The same reference numbers in differentdrawings may identify the same or similar elements.

A set of network devices (e.g. network nodes) may be utilized forcommunication via a network. For example, a first network device (e.g.,a first endpoint network device) may receive information forcommunication to a second network device (e.g., a second endpointnetwork device). The first network device may transmit the informationto the second network device via one or more other network devices(e.g., one or more intermediate network devices). The set of networkdevices may communicate via a particular communications protocol, suchas link layer discovery protocol (LLDP) or the like. For example, thefirst network device may transmit an LLDP message to another networkdevice that neighbors the first network device (e.g., without anintervening network device located between the first network device andthe other network device in a network path). The LLDP message mayinclude one or more type-length value (TLV) fields identifying the firstnetwork device (e.g., a chassis identifier), information identifying oneor more network ports of the first network device (e.g., a portidentifier), or the like.

A network management device may be utilized for visualization of the setof network devices, control of the set of network devices, or the like.For example, the network management device may cause information to betransmitted via a particular network path of a set of network paths. Asanother example, the network management device may provide, for display,information identifying the set of network devices, informationidentifying a particular network device causing a network outage, or thelike. The network management device may be required to be directlyconnected to each network device of the set of network devices, and mayobtain topology information regarding a network topology of the networkutilizing the connection to each network device.

However, connecting the network management device to each intermediatenetwork device, of the set of network devices, may become impractical asthe quantity of intermediate network devices increases. Moreover, as thenetwork topology changes (e.g., intermediate network devices aredisconnected from the network, intermediated network devices are addedto the network, etc.), delays may be experienced in updating connectionsto each intermediate network device. Implementations, described herein,may utilize configurable information of a communications protocol tofacilitate providing network topology information to a networkmanagement device without requiring that the network management devicebe directly connected to each intermediate network device of a set ofnetwork devices.

FIG. 1 is a diagram of an overview of an example implementation 100described herein. As shown in FIG. 1, example implementation 100includes a network management device and a set of network devices. Theset of network devices includes a first endpoint network device (e.g.,endpoint network device “A”), an intermediate network device (e.g.,intermediate network device “B”), and a second endpoint device (e.g.,endpoint network device “C”). Collectively, the set of network devicesare associated with a network path of a network. Endpoint network deviceA may be associated with a network port (e.g., “0”). Intermediatenetwork device B may be associated with a first network port (e.g., “1”)and a second network port (e.g., “2”). Endpoint network device B may beassociated with a network port (e.g., “3”). Assume that endpoint networkdevices A and C are connected to the network management device and thatintermediate network device B is not connected to the network managementdevice.

As further shown in FIG. 1, at a first time interval (e.g., “Time 0”),the set of network devices may transmit a first set of messagesassociated with identifying a network topology. For example, endpointnetwork device A may transmit network topology information tointermediate network device B. The network topology information may betransmitted via an LLDP message that includes a first mandatory TLVfield identifying endpoint network device A and a second mandatory TLVfield identifying the network port of endpoint network device A (e.g.,“AO”). As further shown in FIG. 1, intermediate network device B maytransmit, to endpoint network device C, an LLDP message identifyingintermediate network device B and network ports of network device B(e.g., “B1, B2”).

In some implementations, the set of network devices may be synchronized,and the first set of messages may be transmitted concurrently at aparticular time during the first time interval. Additionally, oralternatively, the set of network devices may not be synchronized, andthe first set of messages may be transmitted by corresponding networkdevices at different times during the first time interval.

As further shown in FIG. 1, endpoint network device C may transmit anLLDP message identifying endpoint network device C and the network portof endpoint network device C (e.g., “C3”). Similarly, intermediatenetwork device B may transmit, to endpoint network device A, an LLDPmessage identifying intermediate network device B and network ports ofnetwork device B (e.g., “B2, B1”). The set of messages may be associatedwith a directionality of the network path. For example, whenintermediate network device B transmits the LLDP message toward endpointnetwork device C, intermediate network device B may indicate a firstorder associated with the network path as “B1, B2.” In contrast, whenintermediate network device B transmits the LLDP message toward endpointnetwork device A, intermediate network device B may indicate a second(e.g., reverse) order associated with the network path as “B2, B1.” Inthis way, a network device identifies a directionality of the networkpath.

The set of network devices may store received topology information andinformation associated with a directionality of the network path. Forexample, endpoint network device A may store “B2, B1” for propagation ina leftward direction. As another example, intermediate network device Bmay store “AO” for propagation in a rightward direction and “C3” forpropagation in a leftward direction. As another example, endpointnetwork device C may store “B1, B2” for propagation in a rightwarddirection.

Although implementations, described herein, may be described indirectional terms (“rightward,” “leftward,” “right-located,”“left-located,” etc.), these terms are used strictly for explanatorypurposes and are not intended to convey any real sense of direction.Thus, these terms can easily be replaced with any other termillustrative of direction, such as upstream, downstream, or the like.

As further shown in FIG. 1, at a second time interval (e.g., “Time 1”),the set of network devices may transmit a second set of messagesidentifying network topology information. The second set of messages mayinclude information identifying the network topology of the network. Forexample, a message may include information identifying a networktopology of a network device sending the message and may include storednetwork topology information intended for propagation in a directionthat the message is being sent.

As an example, endpoint network device A may transmit “AO” rightward tointermediate network device B to identify the network topologyassociated with endpoint network device A, but may not include storednetwork topology information associated with another network device(based on storing “B2, B1” for propagation in the leftward direction).In contrast, intermediate network device B may transmit “A0, B1, B2”rightward to endpoint network device C to identify the network topologyassociated with intermediate network device C and to propagate rightwardstored network topology information associated with endpoint networkdevice A, which was received and stored during the first time interval.In this case, intermediate network device B may identify “B2” viamandatory TLV fields (e.g., a portion of the LDDP message required ineach LLDP message) and may identify “A0, B1, B2” via an optional TLVfield (e.g., a portion of the LLDP message not required in each LLDPmessage, such as an organizationally specific TLV field that may beconfigured for utilization by a set of network devices). In this way,intermediate network device B utilizes a configurable portion of an LLDPmessage to propagate network topology information while maintainingrequired information in the mandatory portion of the LLDP message.

As further shown in FIG. 1, endpoint network device C may transmit “C3”leftward to intermediate network device B to identify the networktopology associated with endpoint network device C, but may not includestored network topology information associated with another networkdevice (based on storing “B1, B2” for propagation in the rightwarddirection). In contrast, intermediate network device B may transmit “C3,B2, B1” leftward to endpoint network device A via an LLDP message.Endpoint network device A and/or endpoint network device C may determinethat the LLDP messages received during the first time interval (e.g.,“B2, B1” and “B1, B2,” respectively) do not match the LLDP messagesreceived during the second time interval (e.g., “C3, B2, B1” and “A0,B1, B2,” respectively). This may indicate a possibility that endpointnetwork device A and/or endpoint network device C have not yet receivednetwork topology information regarding all network devices of thenetwork path. The set of network devices may store network topologyinformation received during the second time interval.

As further shown in FIG. 1, at a third time interval (e.g., “Time 2”),the set of network devices may transmit a third set of messagesidentifying network topology information. For example, endpoint networkdevice A may transmit “AO” to intermediate network device B.Intermediate network device B transmit “A0, B1, B2” to endpoint networkdevice C. Endpoint network device C may transmit “C3” to intermediatenetwork device B. And, intermediate network device B may transmit “C3,B2, B1” to endpoint network device A.

Endpoint network device A and/or endpoint network device C may determinethat the LLDP messages received during the second time interval (e.g.,“C3, B2, B1” and “A0, B1, B2,” respectively) match LLDP messagesreceived during the third time interval (e.g., “C3, B2, B1” and “A0, B1,B2,”). This may indicate that there are no remaining network devices ofthe network path for which to receive network topology information.Based on determining that there are no remaining network devices forwhich to receive network topology information, endpoint network device Aand/or endpoint network device C may transmit network topologyinformation to the network management device (e.g., LLDP messagesidentifying the network topology of the network path as “A0, B1, B2,C3”).

In another example, endpoint network device A and/or endpoint networkdevice C may transmit network topology information to the networkmanagement device at each time interval, and the network managementdevice may determine that there are no remaining network devices of thenetwork path for which to receive network topology information. Based onreceiving the information identifying the network topology of thenetwork path, the network management device may provide the informationidentifying the network topology for display, may adjust a configurationof the network, or the like.

In this way, a set of network devices exchange network topologyinformation, utilizing a mandatory and configurable portions of an LLDPmessage to propagate portions of the network topology information.Moreover, the set of network devices may provide the network topologyinformation to a network management device without the networkmanagement device being directly connected to each network device of theset of network devices.

FIG. 2 is a diagram of an example environment 200 in which systemsand/or methods, described herein, may be implemented. As shown in FIG.2, environment 200 may include one or more network devices 210-1 through210-N (N≥1) (hereinafter referred to collectively as “network devices210,” and individually as “network device 210”) and a network managementdevice 220. Network device 210 and network management device 220 may beassociated with one or more networks. Devices of environment 200 mayinterconnect via wired connections, wireless connections, or acombination of wired and wireless connections.

Network device 210 may include one or more devices capable ofgenerating, storing, receiving, processing, and/or providing informationassociated with a network topology. For example, network device 210 mayinclude a firewall, a router, a gateway, a switch, a hub, a bridge, areverse proxy, a server (e.g., a proxy server), a multiplexer, ademultiplexer, an optical add-drop multiplexer, or a similar device thatroutes network traffic. In some implementations, network device 210 mayutilize one or more communications protocols for transmitting and/orreceiving information. For example, network device 210 may utilize anLLDP based communication protocol or another communications protocolthat permits inclusion of information identifying a network topology.

When a first network device 210 is an endpoint of a network pathincluding a set of network devices 210 (e.g., an initial network device210 of the network path, a final network device 210 of the network path,etc.), the first network device 210 may be termed an endpoint networkdevice 210. In some implementations, the endpoint network device 210 maybe associated with a connection to network management device 220 thatpermits network management device 220 to receive information regarding anetwork topology from endpoint network device 210. A set of othernetwork devices 210 of the network path may be termed a set ofintermediate network devices 210. In some implementations, the set ofintermediate network devices 210 may lack a connection to networkmanagement device 220, and network management device 220 may not bepermitted to request and receive information regarding a networktopology from the set of intermediate network devices 210.

Network management device 220 may include one or more devices capable ofreceiving, generating, storing, processing, and/or providing informationassociated with a network. For example, network management device 220may include a computing device, such as a server, a controller, anoptical performance monitor device, or a similar type of device. Networkmanagement device 220 may assist a user in modeling, planning, and/orcontrolling a network, such as the network including network devices210. For example, network management device 220 may assist in modelingand/or planning a network configuration, which may include quantities,locations, capacities, parameters, and/or configurations of networkdevices 210. In some implementations, network management device 220 maycause data to be routed via a network path of the network (e.g., via aparticular subset of network devices 210 of a set of network devices210) based on a network topology of the network. In someimplementations, network management device 220 may utilize one or morecommunications protocols for transmitting and/or receiving information.

Network device 210 and/or network management device 220 may beassociated with one or more networks, in some implementations.Similarly, a network, of the one or more networks, may include one ormore network devices 210 and/or network management devices 220. In someimplementations, the one or more networks may include a cellular network(e.g., a long-term evolution (LTE) network, a 3G network, a codedivision multiple access (CDMA) network, etc.), a public land mobilenetwork (PLMN), a local area network (LAN), a wide area network (WAN), ametropolitan area network (MAN), a telephone network (e.g., the PublicSwitched Telephone Network (PSTN)), a private network, an ad hocnetwork, an intranet, the Internet, a fiber optic-based network, a cloudcomputing network, or the like, and/or a combination of these or othertypes of networks.

The number and arrangement of devices and networks shown in FIG. 2 areprovided as an example. In practice, there may be additional devicesand/or networks, fewer devices and/or networks, different devices and/ornetworks, or differently arranged devices and/or networks than thoseshown in FIG. 2. Furthermore, two or more devices shown in FIG. 2 may beimplemented within a single device, or a single device shown in FIG. 2may be implemented as multiple, distributed devices. Additionally, oralternatively, a set of devices (e.g., one or more devices) ofenvironment 200 may perform one or more functions described as beingperformed by another set of devices of environment 200.

FIG. 3 is a diagram of example components of a device 300. Device 300may correspond to network device 210 and/or network management device220. In some implementations, network device 210 and/or networkmanagement device 220 may include one or more devices 300 and/or one ormore components of device 300. As shown in FIG. 3, device 300 mayinclude a bus 310, a processor 320, a memory 330, a storage component340, an input component 350, an output component 360, and acommunication interface 370.

Bus 310 may include a component that permits communication among thecomponents of device 300. Processor 320 is implemented in hardware,firmware, or a combination of hardware and software. Processor 320 mayinclude a processor (e.g., a central processing unit (CPU), a graphicsprocessing unit (GPU), an accelerated processing unit (APU), etc.), amicroprocessor, and/or any processing component (e.g., afield-programmable gate array (FPGA), an application-specific integratedcircuit (ASIC), etc.) that interprets and/or executes instructions. Insome implementations, processor 320 may include one or more processorsthat can be programmed to perform a function. Memory 330 may include arandom access memory (RAM), a read only memory (ROM), and/or anothertype of dynamic or static storage device (e.g., a flash memory, amagnetic memory, an optical memory, etc.) that stores information and/orinstructions for use by processor 320.

Storage component 340 may store information and/or software related tothe operation and use of device 300. For example, storage component 340may include a hard disk (e.g., a magnetic disk, an optical disk, amagneto-optic disk, a solid state disk, etc.), a compact disc (CD), adigital versatile disc (DVD), a floppy disk, a cartridge, a magnetictape, and/or another type of computer-readable medium, along with acorresponding drive.

Input component 350 may include a component that permits device 300 toreceive information, such as via user input (e.g., a touch screendisplay, a keyboard, a keypad, a mouse, a button, a switch, amicrophone, etc.). Additionally, or alternatively, input component 350may include a sensor for sensing information (e.g., a global positioningsystem (GPS) component, an accelerometer, a gyroscope, an actuator,etc.). Output component 360 may include a component that provides outputinformation from device 300 (e.g., a display, a speaker, one or morelight-emitting diodes (LEDs), etc.).

Communication interface 370 may include a transceiver-like component(e.g., a transceiver, a separate receiver and transmitter, etc.) thatenables device 300 to communicate with other devices, such as via awired connection, a wireless connection, or a combination of wired andwireless connections. Communication interface 370 may permit device 300to receive information from another device and/or provide information toanother device. For example, communication interface 370 may include anEthernet interface, an optical interface, a coaxial interface, aninfrared interface, a radio frequency (RF) interface, a universal serialbus (USB) interface, a Wi-Fi interface, a cellular network interface, orthe like.

Device 300 may perform one or more processes described herein. Device300 may perform these processes in response to processor 320 executingsoftware instructions stored by a computer-readable medium, such asmemory 330 and/or storage component 340. A computer-readable medium isdefined herein as a non-transitory memory device. A memory deviceincludes memory space within a single physical storage device or memoryspace spread across multiple physical storage devices.

Software instructions may be read into memory 330 and/or storagecomponent 340 from another computer-readable medium or from anotherdevice via communication interface 370. When executed, softwareinstructions stored in memory 330 and/or storage component 340 may causeprocessor 320 to perform one or more processes described herein.Additionally, or alternatively, hardwired circuitry may be used in placeof or in combination with software instructions to perform one or moreprocesses described herein. Thus, implementations described herein arenot limited to any specific combination of hardware circuitry andsoftware.

The number and arrangement of components shown in FIG. 3 are provided asan example. In practice, device 300 may include additional components,fewer components, different components, or differently arrangedcomponents than those shown in FIG. 3. Additionally, or alternatively, aset of components (e.g., one or more components) of device 300 mayperform one or more functions described as being performed by anotherset of components of device 300.

FIG. 4 is a flow chart of an example process 400 for determining anetwork topology associated with a set of network devices. In someimplementations, one or more process blocks of FIG. 4 may be performedby network device 210. In some implementations, one or more processblocks of FIG. 4 may be performed by another device or a group ofdevices separate from or including network device 210, such as networkmanagement device 220.

As shown in FIG. 4, process 400 may include detecting a trigger toprovide network topology information (block 410). For example, networkdevice 210 may detect the trigger to provide network topologyinformation. Network topology information may refer to informationidentifying a portion of a network topology, such as informationidentifying network device 210 (e.g., a chassis identifier), informationidentifying one or more network ports associated with network device 210(e.g., a set of port identifiers), information identifying a portion ofa network topology associated with another network device 210 (e.g., achassis identifier for the other network device 210, a set of portidentifiers for the other network device 210, etc.), or the like. Insome implementations, network device 210 may detect the trigger toprovide the network topology information based on determining that athreshold period of time has elapsed. For example, after a thresholdperiod of time has elapsed (e.g., from a set of network devices 210being activated, from a previous trigger to provide previous networktopology information, etc.), network device 210 may determine to providethe network topology information.

In some implementations, network device 210 may detect the trigger toprovide the network topology information based on receiving a requestfor the network topology information. For example, network device 210(e.g., endpoint network device 210) may receive a request for thenetwork topology information from network management device 220, and maydetermine the network topology information based on receiving therequest. In some implementations, network device 210 may detect thetrigger to provide the network topology information based on receivingnetwork topology information. For example, endpoint network device 210may determine that endpoint network device 210 has received networktopology information regarding one or more network devices 210 of anetwork path. In this case, endpoint network device 210 may be triggeredto generate a network topology message identifying the network topologyinformation regarding a set of network devices 210 of the network pathand provide the network topology message to network management device220.

As further shown in FIG. 4, process 400 may include generating a networktopology message with network topology information (block 420). Forexample, network device 210 may generate a network topology message thatincludes network topology information based on detecting the trigger toprovide network topology information. In some implementations, networkdevice 210 may determine the network topology information. For example,based on detecting the trigger to provide network topology information,network device 210 may obtain stored information identifying a portionof a network topology, such as information associated with networkdevice 210, information associated with one or more other networkdevices 210, or the like.

In some implementations, network device 210 may generate the networktopology message with information identifying a portion of a networktopology relating to network device 210. For example, network device 210may generate an LLDP message that includes a set of mandatorytype-length value (TLV) fields relating to network device 210, such as achassis identifier TLV, a port identifier TLV, or the like. In thiscase, network device 210 may include the set of mandatory TLV fields inthe LLDP message based on the set of mandatory TLV fields being requiredfor each LLDP message that network device 210 provides. In this way,network device 210 generates a network topology message that identifiesa portion of the network topology relating to network device 210.

In some implementations, network device 210 may generate the networktopology message with information identifying a portion of a networktopology relating to another network device 210. For example, networkdevice 210 may receive network topology information from another networkdevice 210 and may store the network topology information, as describedherein with regards to blocks 440 and 450. In this case, network device210 may generate an LLDP message that includes a set of optional TLVfields relating to one or more other network devices 210.

In some implementations, network device 210 may include informationidentifying the one or more other network devices 210 and/or a set ofnetwork ports associated with the one or more other network devices 210.For example, network device 210 may receive an LLDP message from anothernetwork device 210 including a set of mandatory TLV fields identifyingthe other network device 210 (e.g., a chassis identifier, a portidentifier, etc.) or a set of optional TLV fields identifying the othernetwork device 210 (e.g., a chassis identifier and a port identifier foranother port of other network device 210), and may store informationidentifying the other network device 210. In this case, network device210 may include the stored information identifying the other networkdevice 210 in the LLDP message.

In some implementations, network device 210 may include the networktopology information associated with the other network device 210 in aconfigurable portion of the network topology message. For example,network device 210 may include a set of optional TLV fields in a portionof an LLDP message allocated for organizationally specific TLV fields.The set of optional TLV fields may include a type portion indicatingthat the set of optional TLV fields includes network topologyinformation associated with another network device 210. The set ofoptional TLV fields may include a value portion including the networktopology information associated with the other network device 210. Inthis way, network device 210 facilitates propagation of received networktopology information by including the received network topologyinformation in a configurable portion of a network topology message,such as an organizationally specific TLV field of an LLDP message.

In some implementations, network device 210 may generate multipledifferent network topology messages. For example, when network device210 communicates with a first neighboring network device 210 via a firstnetwork port (e.g., a leftward direction) and a second neighboringnetwork device 210 via a second network port (e.g., a rightwarddirection), network device 210 may propagate information received fromthe first neighboring network device 210 to the second neighboringnetwork device 210 and may propagate information received from thesecond neighboring network device 210 to the first neighboring networkdevice 210. In this way, after a set of time intervals, a networktopology associated with each intermediate network device 210 of a setof intermediate network devices 210 of a network path may be propagatedto an endpoint network device 210 of the network path, therebypermitting the endpoint network device 210 to provide network topologyinformation regarding each network device 210 of the network path to anetwork management device 220.

As further shown in FIG. 4, process 400 may include providing thenetwork topology message (block 430). For example, network device 210may provide the network topology message. In some implementations,network device 210 may provide the network topology message to anothernetwork device 210. For example, a first network device 210 may providethe network topology message to a second, neighboring network device 210of a network path. In some implementations, network device 210 mayprovide multiple network topology messages to multiple network devices210. For example, when a particular network device 210 is connected viaa first network port to a first neighboring network device 210 (e.g., ina leftward direction) and via a second network port to a secondneighboring network device 210 (e.g., in a rightward direction), theparticular network device 210 may provide a first network topologymessage to the first neighboring network device 210 and a second networktopology message to the second neighboring network device 210. In someimplementations, the first network topology message and the secondnetwork topology message may be different network topology messages. Forexample, the first network topology message may include information forpropagation in the leftward direction (e.g., information received fromnetwork devices 210 in a rightward direction relative to the particularnetwork device 210) and the second network topology message may includeinformation for propagation in the rightward direction (e.g.,information received from network devices 210 in a leftward directionrelative to the particular network device 210).

In some implementations, network device 210 may provide the same networktopology message to multiple network management devices. For example,when the particular network device 210 is connected via a third networkport to a third neighboring network device 210 (e.g., in the rightwarddirection), the particular network device 210 may propagate networktopology information received from the first neighboring network device210 to both the second neighboring network device 210 and the thirdneighboring network device 210. In this way, network device 210propagates network topology information for a network with multipleoverlapping network paths (e.g., multiple network paths sharing one ormore network devices 210 in common).

In some implementations, network device 210 may provide the networktopology message to network management device 220. For example, endpointnetwork device 210 may provide the network topology message to networkmanagement device 220. In some implementations, endpoint network device210 may provide the network topology message to network managementdevice 220 based on receiving a request. For example, network managementdevice 220 may transmit a request for network topology information toone or more endpoint network devices 210, and may receive networktopology messages from the one or more endpoint network devices 210.Additionally, or alternatively, endpoint network device 210 may providethe network topology message to network management device 220 based ondetermining that the network topology message includes network topologyinformation regarding each network device 210 of a network path.Additionally, or alternatively, endpoint network device 210 may providethe network topology message based on determining that the networktopology message indicates a change to the network topology.

In some implementations, endpoint network device 210 may provide thenetwork topology message to network management device 220 to cause anadjustment to a parameter of a network. For example, network managementdevice 220 may receive the network topology message and may adjust thenetwork and/or one or more network devices 210 of the network based on anetwork topology of the network. Additionally, or alternatively, networkmanagement device 220 may select a network path of a set of networkpaths for routing information, may scheduling routing of information, orthe like based on the network topology. Additionally, or alternatively,network management device 220 may provide a representation of thenetwork topology for display, and may receive input associated withadjusting a configuration of the network based on providing therepresentation of the network topology for display. In this way, networkdevice 210 provides network topology information to facilitatemanagement, organization, and/or visualization of a network.

As further shown in FIG. 4, process 400 may include receiving anothernetwork topology message from another network device (block 440). Forexample, network device 210 may receive another network topology messagefrom another network device 210. In some implementations, network device210 may receive the other topology message concurrently with providingthe network topology message. For example, a set of network devices 210may utilize one or more synchronization techniques (e.g., clock basedsynchronization, message based synchronization, or the like) to ensurethat network topology messages (e.g., LLDP messages) are transmittedconcurrently. Additionally, or alternatively, network device 210 mayreceive the other network topology message based on transmitting thenetwork topology message. For example, a first network device 210 maytransmit a first network topology message to a second network device210, and this may trigger the second network device 210 to transmit asecond network topology message to first network device 210.

As further shown in FIG. 4, process 400 may include storing othernetwork topology information included in the other network topologymessage (block 450). For example, network device 210 may store othernetwork topology information included in the other network topologymessage. In this case, network device 210 may include the other networktopology information when transmitting a network topology message atanother time interval. For example, network device 210 may transmitfirst network topology information and may receive second networktopology information at a first time interval, may store the secondnetwork topology information via a data structure, and may transmit thefirst network topology information and the second network topologyinformation at a second time interval. In this way, network device 210receives and provides network topology information.

In some implementations, network device 210 may process the othernetwork topology information. For example, for an LLDP message, networkdevice 210 may parse a set of mandatory TLV fields of the LLDP messageto obtain network topology information about a particular neighboringnetwork device 210 (e.g., that sent the LLDP message), and may parse aportion of the LLDP message allocated for organizationally specific(optional) TLV fields to obtain network information regarding othernetwork devices 210 (e.g., a neighboring network device 210 of theparticular neighboring network device 210). In this case, network device210 may store the network topology information regarding the particularneighboring network device 210 and the other network devices 210 via adata structure for encapsulation in another network topology message.

In some implementations, network device 210 may remove duplicateinformation from the data structure. For example, at a first timeinterval, a first network device 210 may receive and store informationregarding a second network device 210 and, at a second time interval,first network device 210 may receive information regarding secondnetwork device 210 and a third network device 210. In this case, firstnetwork device 210 may append the information regarding the thirdnetwork device 210 to stored information regarding second network device210, thereby reducing memory storage requirements relative to storingall received network topology information.

Although FIG. 4 shows example blocks of process 400, in someimplementations, process 400 may include additional blocks, fewerblocks, different blocks, or differently arranged blocks than thosedepicted in FIG. 4. Additionally, or alternatively, two or more of theblocks of process 400 may be performed in parallel.

FIGS. 5A-5D are diagrams of an example implementation 500 relating toexample process 400 shown in FIG. 4. FIGS. 5A-5D show an example ofdetermining a network topology associated with a set of network devices.

As shown in FIG. 5A, a network path may include a set of network devices210-1 through 210-4 and a network management device 220. Assume that theset of network devices 210 have generated a set of LLDP messages 501-508for transmission at a first time interval. As shown by reference number501, network device 210-1 transmits LLDP message 501, which includesnetwork topology information for propagation in the rightward direction.The network topology information is encapsulated by a TLV fieldidentifying network device 210-1 (e.g., “Chassis ID: 210-1”), a TLVfield identifying a network port of network device 210-1 (e.g., “PortID: R”), and an organizationally specific TLV field that does notinclude any information (e.g., “Org Sp: --”). In another example,network device 210-1 may omit the organizationally specific TLV fieldwhen the organizationally specific TLV field does not includeinformation. As shown by reference numbers 502 through 508, the set ofnetwork devices 210 transmit other LLDP messages of the set of LLDPmessages. Assume that each network device 210, of the set of networkdevices 210, and network management device 220 store network topologyinformation received via the set of LLDP messages. In this way, eachnetwork device 210 propagates network topology information.

As shown in FIG. 5B, and by reference number 510, network managementdevice 220 provides received network topology information for display.Based on receiving LLDP messages 504 and 508 from network devices 210-4and 210-1, respectively, network management device 220 identifiesnetwork device 210-1, possibility one or more intermediate networkdevices 210 (e.g., “?”), and network device 210-4. Assume that the setof network devices 210 have generated a set of LLDP messages 511-518 fortransmission at a second time interval. As shown by reference number511, network device 210-1 transmits LLDP message 511 to network device210-2. LLDP message 511 includes the same information as LLDP message501 for propagation in the rightward direction (network device 210-1 didnot receive a message for propagation in the rightward direction at thefirst time interval).

As further shown in FIG. 5B, and by reference number 512, network device210-2 transmits LLDP message 512 to network device 210-3 for propagationin the rightward direction, which includes the same chassis identifierTLV field and port identifier TLV field as LLDP message 502 and whichincludes an organizationally specific TLV field (e.g., “Org Sp: 210-1R”)that encapsulates network topology information received from networkdevice 210-1 via LLDP message 501 (e.g., information identifying networkdevice 210-1 and identifying network port R of network device 210-1). Asshown by reference numbers 513-517, the set of network devices 210propagate LLDP messages 513-517. In this way, the set of network devices210 propagate network topology information, in a second time interval,that was received during a first time interval. As shown by referencenumber 518, network device 210-1 transmits LLDP message 518 in theleftward direction to network management device 220. LLDP message 518includes the same chassis identifier TLV field and port identifier TLVfield as LLDP message 508 and includes an organizationally specific TLVfield (e.g., “Org Sp: 210-2V, 210-2U”) that includes network topologyinformation received from network device 210-2 via LLDP message 507(e.g., information identifying network device 210-2 and network Ports Vand U or network device 210-2).

As shown in FIG. 5C, and by reference number 520, network managementdevice 220 provides received network topology information for display.Based on receiving messages 514 and 518 from network devices 210-4 and210-1, respectively, network management device 220 identifies networkdevice 210-1, network device 210-2, possibility one or more otherintermediate network devices 210 (e.g., “?”), network device 210-3, andnetwork device 210-4. Although no intermediate network device 210 islocated between network device 210-2 and network device 210-3, networkmanagement device 220 has not received information during the first timeinterval or the second time interval confirming the lack of anintermediate network device 210. Assume that the set of network devices210 have generated a set of LLDP messages 521-528 for transmission at athird time interval.

As further shown in FIG. 5C, and by reference number 521, network device210-1 transmits LLDP message 521 to network device 210-2 as LLDP message501 and LLDP message 511 for propagation in the rightward direction(network device 210-1 did not receive a message for propagation in therightward direction at the first time interval or the second timeinterval). As shown by reference number 522, network device 210-2transmits an LLDP message 522 to network device 210-3 which includes thesame information as LLDP message 512 based on network device 210-2having received the same network topology information from networkdevice 210-1 at the first time interval via LLDP message 501 and thesecond time interval via LLDP message 511.

As further shown in FIG. 5C, and by reference numbers 523-527, the setof network devices 210 propagate LLDP messages 523-527. As shown byreference number 528, network device 210-1 transmits LLDP message 528,which includes the same chassis identifier and port identifier as LLDPmessages 508 and 518. However, LLDP message 528 includes anorganizationally specific TLV field (e.g., “Org Sp: 210-3V, 210-3U,210-2T, 210-2S”) that includes network topology information receivedfrom network device 210-2 via LLDP message 517 (e.g., network topologyinformation regarding network device 210-2 and network device 210-3). Inthis way, the set of network devices 210 propagate network topologyinformation, in a third time interval, that was received during a secondtime interval.

As shown in FIG. 5D, and by reference number 530, network managementdevice 220 provides received network topology information for display.Based on receiving messages 524 and 528 from network devices 210-4 and210-1, respectively, network management device 220 identifies networkdevice 210-1, network device 210-2, network device 210-3, and networkdevice 210-4 (without indicating a possibility of another intermediatenetwork device 210 based on LLDP messages 504, 508, 514, 518, 524, and528 collectively indicating that there is no intermediate network device210 located between network device 210-2 and network device 210-3). Inthis way, network management device 220 provides a visualization of anetwork path of a network based on receiving network topologyinformation from endpoint network devices 210 (and without beingdirectly connected to any intermediate network devices 210).

As further shown in FIG. 5D, and by reference numbers 531-538, the setof network devices 210 continue to exchange LLDP messages 531-538 evenafter network management device 220 has received the informationidentifying the network topology for each network device 210 of thenetwork. In another example, network device 210-1 may avoid transmittingnetwork topology information to network management device 220 untilnetwork device 210-1 is capable of transmitting the complete networktopology information, such as after receiving LLDP message 538 or asubsequent message matching LLDP message 538. In this way, networkdevice 210-1 reduces a quantity of network traffic relative totransmitting multiple LLDP messages with partial network topologyinformation to network management device 220.

In another example, when the network topology changes (e.g., a networkdevice 210 is added, a network device 210 is removed, a network port isdisabled, or the like), network management device 220 may receiveinformation regarding the change to the network topology after theinformation is propagated during a particular quantity of timeintervals. In other words, if network device 210-2 is removed, at afirst time interval, network device 210-1 receives an LLDP message fromnetwork device 210-3 identifying network device 210-3 and, at a secondtime interval, network device 210-1 provides an LLDP message to networkmanagement device 220 identifying network device 210-3 and networkdevice 210-1, thereby indicating the removal of network device 210-2.

As indicated above, FIGS. 5A-5D are provided merely as an example. Otherexamples are possible and may differ from what was described with regardto FIGS. 5A-5D.

In this way, network device 210 utilizes a configurable portion of anetwork topology message (e.g., an organizationally specific TLV fieldof an LLDP message) to provide information identifying a portion of thenetwork topology associated with a set of other network devices 210.Moreover, based on propagating network topology information for eachnetwork device 210 to endpoint network devices 210, the endpoint networkdevices 210 can provide network topology information to networkmanagement device 220 for each network device 210 of a network path,thereby permitting network management device 220 to determine thenetwork topology without network management device 220 being capable ofcommunication with one or more network devices 210 of the set of networkdevices 210.

The foregoing disclosure provides illustration and description, but isnot intended to be exhaustive or to limit the implementations to theprecise form disclosed. Modifications and variations are possible inlight of the above disclosure or may be acquired from practice of theimplementations.

As used herein, the term component is intended to be broadly construedas hardware, firmware, and/or a combination of hardware and software.

Some implementations are described herein in connection with thresholds.As used herein, satisfying a threshold may refer to a value beinggreater than the threshold, more than the threshold, higher than thethreshold, greater than or equal to the threshold, less than thethreshold, fewer than the threshold, lower than the threshold, less thanor equal to the threshold, equal to the threshold, etc.

It will be apparent that systems and/or methods, described herein, maybe implemented in different forms of hardware, firmware, or acombination of hardware and software. The actual specialized controlhardware or software code used to implement these systems and/or methodsis not limiting of the implementations. Thus, the operation and behaviorof the systems and/or methods were described herein without reference tospecific software code—it being understood that software and hardwarecan be designed to implement the systems and/or methods based on thedescription herein.

Even though particular combinations of features are recited in theclaims and/or disclosed in the specification, these combinations are notintended to limit the disclosure of possible implementations. In fact,many of these features may be combined in ways not specifically recitedin the claims and/or disclosed in the specification. Although eachdependent claim listed below may directly depend on only one claim, thedisclosure of possible implementations includes each dependent claim incombination with every other claim in the claim set.

No element, act, or instruction used herein should be construed ascritical or essential unless explicitly described as such. Also, as usedherein, the articles “a” and “an” are intended to include one or moreitems, and may be used interchangeably with “one or more.” Furthermore,as used herein, the term “set” is intended to include one or more items(e.g., related items, unrelated items, a combination of related andunrelated items, etc.), and may be used interchangeably with “one ormore.” Where only one item is intended, the term “one” or similarlanguage is used. Also, as used herein, the terms “has,” “have,”“having,” or the like are intended to be open-ended terms. Further, thephrase “based on” is intended to mean “based, at least in part, on”unless explicitly stated otherwise.

1-20. (canceled)
 21. A method, comprising: detecting, by a first device,a trigger to provide network topology information; generating, by thefirst device, a first network topology message, the first networktopology message including: first network topology informationassociated with the first device, and second network topologyinformation associated with a plurality of second devices; generating,by the first device, a second network topology message, the secondnetwork topology message including: the first network topologyinformation associated with the first device, and third network topologyinformation associated with a plurality of third devices; providing, bythe first device, the first network topology message to a particularthird device of the plurality of third devices; and providing, by thefirst device, the second network topology message to a particular seconddevice of the plurality of second devices.
 22. The method of claim 21,wherein detecting the trigger to provide network topology informationcomprises: detecting, based on determining that a threshold period oftime has elapsed, the trigger to provide network topology information.23. The method of claim 21, wherein detecting the trigger to providenetwork topology information comprises: detecting, based on receivingnetwork topology information, the trigger to provide network topologyinformation.
 24. The method of claim 21, further comprising: receivingthe second network topology information from one of the plurality ofsecond devices; and storing the second network topology information,wherein generating the first network topology information comprises:generating, based on detecting the trigger, the first network topologymessage.
 25. The method of claim 21, further comprising: receiving thethird network topology information from one of the plurality of thirddevices; and storing the third network topology information, whereingenerating the second network topology information comprises:generating, based on detecting the trigger, the second network topologymessage.
 26. The method of claim 21, wherein providing the first networktopology message to the particular third device comprises: providing thefirst network topology message to the particular third deviceconcurrently with receiving the second network topology information. 27.The method of claim 21, wherein providing the second network topologymessage to the particular second device comprises: providing the secondnetwork topology message to the particular second device concurrentlywith receiving the third network topology information.
 28. A firstdevice, comprising: one or more memories; and one or more processorsconfigured to: detect a trigger to provide network topology information;generate a first network topology message, the first network topologymessage including: first network topology information associated withthe first device, and second network topology information associatedwith a plurality of second devices; generate a second network topologymessage, the second network topology message including: the firstnetwork topology information associated with the first device, and thirdnetwork topology information associated with a plurality of thirddevices; provide the first network topology message to a particularthird device of the plurality of third devices; and provide the secondnetwork topology message to a particular second device of the pluralityof second devices.
 29. The first device of claim 28, wherein the one ormore processors, when detecting the trigger to provide network topologyinformation, are configured to: detect, based on determining that athreshold period of time has elapsed, the trigger to provide networktopology information.
 30. The first device of claim 28, wherein the oneor more processors, when detecting the trigger to provide networktopology information, are configured to: detect, based on receivingnetwork topology information, the trigger to provide network topologyinformation.
 31. The first device of claim 28, wherein the one or moreprocessors are further configured to: receive the second networktopology information from one of the plurality of second devices; andstore the second network topology information, wherein the one or moreprocessors, when generating the first network topology information, areconfigured to: generate, based on detecting the trigger, the firstnetwork topology message.
 32. The first device of claim 28, wherein theone or more processors are further configured to: receive the thirdnetwork topology information from one of the plurality of third devices;and store the third network topology information, wherein the one ormore processors, when generating the second network topologyinformation, are configured to: generate, based on detecting thetrigger, the second network topology message.
 33. The first device ofclaim 28, wherein the one or more processors, when providing the firstnetwork topology message to the particular third device, are configuredto: provide the first network topology message to the particular thirddevice concurrently with receiving the second network topologyinformation.
 34. The first device of claim 28, wherein the one or moreprocessors, when providing the second network topology message to theparticular second device, are configured to: provide the second networktopology message to the particular second device concurrently withreceiving the third network topology information.
 35. A non-transitorycomputer-readable medium storing instructions, the instructionscomprising: one or more instructions that, when executed by one or moreprocessors of a first device, cause the one or more processors to:detect a trigger to provide network topology information; generate afirst network topology message, the first network topology messageincluding: first network topology information associated with the firstdevice, and second network topology information associated with aplurality of second devices; generate a second network topology message,the second network topology message including: the first networktopology information associated with the first device, and third networktopology information associated with a plurality of third devices;provide the first network topology message to a particular third deviceof the plurality of third devices; and provide the second networktopology message to a particular second device of the plurality ofsecond devices.
 36. The non-transitory computer-readable medium of claim35, wherein the one or more instructions, that cause the one or moreprocessors to detect the trigger to provide network topologyinformation, cause the one or more processors to: detect, based ondetermining that a threshold period of time has elapsed, the trigger toprovide network topology information.
 37. The non-transitorycomputer-readable medium of claim 35, wherein the one or moreinstructions, that cause the one or more processors to detect thetrigger to provide network topology information, cause the one or moreprocessors to: detect, based on receiving network topology information,the trigger to provide network topology information.
 38. Thenon-transitory computer-readable medium of claim 35, wherein the one ormore instructions, when executed by the one or more processors, furthercause the one or more processors to: receive the second network topologyinformation from one of the plurality of second devices; and store thesecond network topology information, wherein the one or moreinstructions, that cause the one or more processors to generate thefirst network topology information, cause the one or more processors to:generate, based on detecting the trigger, the first network topologymessage.
 39. The non-transitory computer-readable medium of claim 35,wherein the one or more instructions, when executed by the one or moreprocessors, further cause the one or more processors to: receive thethird network topology information from one of the plurality of thirddevices; and store the third network topology information, wherein theone or more instructions, that cause the one or more processors togenerate the second network topology information, cause the one or moreprocessors to: generate, based on detecting the trigger, the secondnetwork topology message.
 40. The non-transitory computer-readablemedium of claim 35, wherein the one or more instructions, that cause theone or more processors to provide the first network topology message tothe particular third device, cause the one or more processors to:provide the first network topology message to the particular thirddevice concurrently with receiving the second network topologyinformation.